"""
3005. 最大频率元素计数
简单
相关标签
premium lock icon
相关企业
提示
给你一个由 正整数 组成的数组 nums 。

返回数组 nums 中所有具有 最大 频率的元素的 总频率 。

元素的 频率 是指该元素在数组中出现的次数。



示例 1：

输入：nums = [1,2,2,3,1,4]
输出：4
解释：元素 1 和 2 的频率为 2 ，是数组中的最大频率。
因此具有最大频率的元素在数组中的数量是 4 。
示例 2：

输入：nums = [1,2,3,4,5]
输出：5
解释：数组中的所有元素的频率都为 1 ，是最大频率。
因此具有最大频率的元素在数组中的数量是 5 。


提示：

1 <= nums.length <= 100
1 <= nums[i] <= 100
"""
from collections import defaultdict
from typing import List


class Solution:
    def maxFrequencyElements(self, nums: List[int]) -> int:
        dict1 = {}
        for num in nums:
            dict1[num] = dict1.get(num,0) + 1
        values = list(dict1.values())
        #不用排序，直接拿最大值就行
        values.sort()
        ans = values[-1]
        for i in range(len(values)-2,-1,-1):
            if values[i] == values[-1]:
                ans+=values[-1]
            else:
                break
        return ans
    def maxFrequencyElements_res1(self, nums: List[int]) -> int:
        cnt = defaultdict(int)
        ans = max_cnt = 0
        for x in nums:
            cnt[x] += 1
            c = cnt[x]
            if c > max_cnt:
                ans = max_cnt = c
            elif c == max_cnt:
                ans += c
        return ans

if __name__ == '__main__':
    print(Solution().maxFrequencyElements([1,2,2,3,1,4]))
    print(Solution().maxFrequencyElements([1,2,3,4,5]))

